// setTimeout(function(){
// 	var a = 'hello'
// 	setTimeout(function(){
// 		var b = 'lagou'
// 		setTimeout(function(){
// 			var c = 'I L U'
// 			console.log(a + b + c)
// 		}, 10)
// 	}, 10)
// }, 10)

function splicing (data) {
	return new Promise(function(resolve, reject){
		setTimeout(function(){
			resolve(data)
		}, 10)
	})
}

// splicing('hello')
//   .then( res => splicing(res + 'lagou'))
//   .then( res => splicing(res + 'I L U'))
//   .then( data => console.log(data))

async function th (){
  try {
    const str1 = await splicing('hello')
    // console.log(str1)
    const str2 = await splicing('lagou')
    // console.log(str2)
    const str3 = await splicing('I L U')
    // console.log(str3)
    return str1 + str2 + str3
  } catch ( e ) {
    console.log( e )
  }
}


const pro = th()

pro.then( data => console.log(data))



// function handleResult (result){
// 	// if(result.done) return
// 	result.value.then(data =>{
// 		handleResult(th.next(data))
// 	}, error =>{
// 		th.throw(error)
// 	})
// }

// handleResult(th.next)

